package com.ruoyi.system.service;

import java.util.List;
import java.util.Map;

/**
 * 智能推荐系统服务接口
 * 
 * @author ruoyi
 * @date 2024-01-26
 */
public interface ICreditRecommendationService 
{
    /**
     * 获取个性化服务推荐
     * 
     * @param userId 用户ID
     * @param category 推荐类别
     * @return 推荐列表
     */
    public List<Map<String, Object>> getPersonalizedRecommendations(Long userId, String category);

    /**
     * 获取商品推荐
     * 
     * @param userId 用户ID
     * @param category 商品类别
     * @return 推荐商品列表
     */
    public List<Map<String, Object>> getProductRecommendations(Long userId, String category);

    /**
     * 获取活动推荐
     * 
     * @param userId 用户ID
     * @param activityType 活动类型
     * @return 推荐活动列表
     */
    public List<Map<String, Object>> getActivityRecommendations(Long userId, String activityType);

    /**
     * 获取生活服务推荐
     * 
     * @param userId 用户ID
     * @param location 位置信息
     * @return 推荐服务列表
     */
    public List<Map<String, Object>> getLifeServiceRecommendations(Long userId, String location);

    /**
     * 记录用户行为
     * 
     * @param userId 用户ID
     * @param actionType 行为类型
     * @param itemId 项目ID
     * @param itemType 项目类型
     */
    public void recordUserBehavior(Long userId, String actionType, Long itemId, String itemType);

    /**
     * 更新推荐模型
     * 
     * @param userId 用户ID
     * @return 更新结果
     */
    public Map<String, Object> updateRecommendationModel(Long userId);

    /**
     * 获取热门推荐
     * 
     * @param category 类别
     * @param limit 数量限制
     * @return 热门推荐列表
     */
    public List<Map<String, Object>> getHotRecommendations(String category, int limit);

    /**
     * 获取用户偏好分析
     * 
     * @param userId 用户ID
     * @return 偏好分析结果
     */
    public Map<String, Object> getUserPreferenceAnalysis(Long userId);
} 